package org.yelongframework.excel.cell;

import org.yelongframework.excel.row.ExcelRow;
import org.yelongframework.excel.sheet.ExcelSheet;
import org.yelongframework.excel.workbook.ExcelWorkbook;

/**
 * 单元格
 * 
 * @since 1.0.0
 */
public interface ExcelCell {

	// ==================================================索引==================================================

	/**
	 * @return 包含此单元格的工作表中一行的从零开始的行索引
	 */
	int getRowIndex();

	/**
	 * @return 工作表中列的从零开始的列索引。
	 */
	int getColumnIndex();

	// ==================================================获取字符串值==================================================

	/**
	 * 字符串值
	 * 
	 * @return 字符串值
	 */
	String getValueString();

	/**
	 * 转换成Integer后的字符串值
	 * 
	 * @return 字符串值
	 */
	String getValueIntString();

	/**
	 * 如果能转换成Integer，则返回Integer的字符串值，否则返回源字符串
	 * 
	 * @return 字符串值
	 */
	String getValueIntStringIf();

	// ==================================================所属的行==================================================

	/**
	 * @return 所属的行
	 */
	ExcelRow getRow();

	// ==================================================所属的工作表==================================================

	/**
	 * @return 所属的工作表
	 */
	ExcelSheet getSheet();

	// ==================================================所属的工作薄==================================================

	/**
	 * @return 所属的工作薄
	 */
	ExcelWorkbook getWorkbook();

	// ==================================================单元格==================================================

	/**
	 * @return Excel单元格
	 */
	Object getCell();

}
